#include"../../include/fast_io_legacy.h"


template<std::floating_point F>
inline constexpr void test(std::string_view literal,F f)
{
	println(fast_io::c_stdout,u8"literal:",literal,u8"->scientific:",fast_io::scientific(f),u8"\tfixed:",fast_io::fixed(f),u8"\tgeneral:",f,"\tbinary:",fast_io::bin(fast_io::bit_cast<std::uint64_t>(f)));
}
int main()
{
	test("0.0",0.0);
	test("1.0",1.0);
	test("10.0",10.0);
	test("100.0",100.0);
	test("1000.0",1000.0);
	test("10000.0",10000.0);
	test("100000.0",100000.0);
	test("1000000.0",1000000.0);
	test("10000000.0",10000000.0);
	test("100000000.0",100000000.0);
	test("11000.0",11000.0);
	test("23535782139572189357.0",23535782139572189357.0);
	test("235357821395721893572.0",235357821395721893572.0);
	test("2353578213957218935723.0",2353578213957218935723.0);
	test("23535782139572189357234.0",23535782139572189357234.0);
	test("235357821395721893572345.0",235357821395721893572345.0);
	test("1e-2",1e-2);
	test("1e-4",1e-4);
	test("1.1e-4",1.1e-4);
	test("1.1e-5",1.1e-5);
	test("1.1e4",1.1e4);
	test("1.1e5",1.1e5);
	test("1.1e6",1.1e6);
	test("1.1e7",1.1e7);
	test("1e-6",1e-6);
	test("1e-8",1e-8);
	test("1.2241412412421421412412412",1.2241412412421421412412412);
}

/*
literal:0.0->scientific:0e+00	fixed:0	general:0	binary:0
literal:1.0->scientific:1e+00	fixed:1	general:1	binary:11111111110000000000000000000000000000000000000000000000000000
literal:10.0->scientific:1e+01	fixed:10	general:10	binary:100000000100100000000000000000000000000000000000000000000000000
literal:100.0->scientific:1e+02	fixed:100	general:100	binary:100000001011001000000000000000000000000000000000000000000000000
literal:1000.0->scientific:1e+03	fixed:1000	general:1000	binary:100000010001111010000000000000000000000000000000000000000000000
literal:10000.0->scientific:1e+04	fixed:10000	general:1e+04	binary:100000011000011100010000000000000000000000000000000000000000000
literal:100000.0->scientific:1e+05	fixed:100000	general:1e+05	binary:100000011111000011010100000000000000000000000000000000000000000
literal:1000000.0->scientific:1e+06	fixed:1000000	general:1e+06	binary:100000100101110100001001000000000000000000000000000000000000000
literal:10000000.0->scientific:1e+07	fixed:10000000	general:1e+07	binary:100000101100011000100101101000000000000000000000000000000000000
literal:100000000.0->scientific:1e+08	fixed:100000000	general:1e+08	binary:100000110010111110101111000010000000000000000000000000000000000
literal:11000.0->scientific:1.1e+04	fixed:11000	general:11000	binary:100000011000101011111000000000000000000000000000000000000000000
literal:23535782139572189357.0->scientific:2.353578213957219e+19	fixed:23535782139572190000	general:23535782139572190000	binary:100001111110100011010011111111001010010100001110100001011110000
literal:235357821395721893572.0->scientific:2.3535782139572188e+20	fixed:235357821395721880000	general:235357821395721880000	binary:100010000101001100001000111110111100111001010010001001110101011
literal:2353578213957218935723.0->scientific:2.3535782139572189e+21	fixed:2353578213957218900000	general:2353578213957218900000	binary:100010001011111111001011001110101100000111100110101100010010110
literal:23535782139572189357234.0->scientific:2.353578213957219e+22	fixed:23535782139572190000000	general:2.353578213957219e+22	binary:100010010010011111011111000001001011100100110000001011101011110
literal:235357821395721893572345.0->scientific:2.3535782139572188e+23	fixed:235357821395721880000000	general:2.3535782139572188e+23	binary:100010011001000111010110110001011110011101111100001110100110101
literal:1e-2->scientific:1e-02	fixed:0.01	general:0.01	binary:11111110000100011110101110000101000111101011100001010001111011
literal:1e-4->scientific:1e-04	fixed:0.0001	general:1e-04	binary:11111100011010001101101110001011101011000111000100001100101101
literal:1.1e-4->scientific:1.1e-04	fixed:0.00011	general:0.00011	binary:11111100011100110101011111100110011100001110001011000001001011
literal:1.1e-5->scientific:1.1e-05	fixed:0.000011	general:1.1e-05	binary:11111011100111000100011001010001111100111110100010011010100010
literal:1.1e4->scientific:1.1e+04	fixed:11000	general:11000	binary:100000011000101011111000000000000000000000000000000000000000000
literal:1.1e5->scientific:1.1e+05	fixed:110000	general:110000	binary:100000011111010110110110000000000000000000000000000000000000000
literal:1.1e6->scientific:1.1e+06	fixed:1100000	general:1100000	binary:100000100110000110010001110000000000000000000000000000000000000
literal:1.1e7->scientific:1.1e+07	fixed:11000000	general:1.1e+07	binary:100000101100100111110110001100000000000000000000000000000000000
literal:1e-6->scientific:1e-06	fixed:0.000001	general:1e-06	binary:11111010110000110001101111011110100000101101011110110110001101
literal:1e-8->scientific:1e-08	fixed:0.00000001	general:1e-08	binary:11111001000101011110011000111011100010001100001000110000111010
literal:1.2241412412421421412412412->scientific:1.2241412412421422e+00	fixed:1.2241412412421422	general:1.2241412412421422	binary:11111111110011100101100001010100100000010011010001111000011000
*/